<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Evento_lst( $this );

	class Evento_lst extends Lst
	{
	function Evento_lst( &$oModule )
		{
			$this->Lst( $oModule );
			$this->oFecha = new DateObject();
		}
	function initialize()
		{
			$this->oFiltro = $this->oModule->loadClass( 'Evento_frm' );
			$this->aFields = array_merge ( (array)$this->aFields,  (array)$this->oFiltro->getFieldArray() );
			$this->aFields[nAno] =getParam('nAno');
			
			$this->setTitle ( "Eventos" );
			$this->setSummary( "Esta tabla contiene los Eventos" );
			$this->addColumn ( 'Nombre', '', 'cdEvento' );
			$this->addColumn ( 'Fecha' , '', 'dDesde');
			$this->addColumn ( 'Estado' );
			$this->addColumnLink ( 'Web', 'cPaginaWeb' );
			if ( $this->getOptionView() != 'C' )
			{
				$oTab =& $this->setIndex( INDEX_YEAR, TAB_TOP , 'nAno');
				$oTab->setDefault( Date("Y"));
			}
			$this->setColumnAction ( 'Nombre', VER_EVENTO, 'ncEvento' );
		}
	function makeRowProperties ( $aRow )
		{
			if ( $aRow['bCancelado'] ) return " style='text-decoration: line-through;' ";
		}
	function makeColumn ( $aRow, $cField )
	{
		switch( $cField )
		{
			case 'KeyDay':
				$this->oFecha->setValue( $aRow['dDesde'] );
				$cReturn =  $this->oFecha->getValue();
				break;
			case 'Estado':
				if ( $aRow['bCancelado'] ) $cReturn = "Cancelado";
				else
				{
					$cSql = "SELECT COUNT(*) FROM gtEventoContacto  WHERE ncEvento = "  . $aRow['ncEvento'] ;
					$aRow['nqContactos'] = $this->oDatabase->getData($cSql);
					if ( $aRow['nqContactos'] > 0 ) $cReturn = "Cargado (" . $aRow['nqContactos'] . ")";
					else
					{
						if ( $this->oFecha->dateDiff('d') > 0 ) $cReturn = "Activo";
						else $cReturn = "Faltante";
					}
				}
				break;
			case 'Nombre':
				$cReturn = $aRow['cdEvento'] ;
				if ( $aRow['cSigla'] ) $cReturn .= " ( " . $aRow['cSigla']  . " )";
				break;
			case 'Fecha':
				$cReturn = "";
				$this->oFecha->setValue ( $aRow['dDesde'] );
				if ( $aRow['dDesde'] ) $cReturn = $this->oFecha->getShortDescription() ;
				$this->oFecha->setValue ( $aRow['dHasta'] );
				if ( $aRow['dHasta'] ) $cReturn .=  ' - ' . $this->oFecha->getShortDescription();
				break;
			default:
					return false;
				break;
		}
		return $cReturn;
	}
	function query()
		{
			// Arma el Query
				$cSql = "SELECT Eve.ncEvento, Eve.cdEvento, Eve.dDesde, Eve.dHasta, Eve.cSigla, bCancelado, cPaginaWeb
							FROM gtEvento as Eve";
			// Arma el Filtro de la Consulta
				$this->oWhere->addArray ( $this->oFiltro->getFilterdArray('Eve') );
				$nAno = getParam('nAno', Date("Y"));
				if ( $nAno  ) $this->oWhere->addExpression ( 'Eve.dDesde', " (YEAR(dDesde) = $nAno) ");
				if ( $this->getOptionView() == 'C' ) list( $dDesde, $dHasta ) = $this->getDateRange();
				if ( $dDesde && $dHasta ) $this->oWhere->add( "Eve.dDesde", "$dDesde,$dHasta", "between");
				return $cSql . $this->oWhere->make();
		}
	function makeListActions()
		{
			$this->oModule->setBack();
			$cParametroRegistro =  $this->getFieldString();
			$this->addListAction ( AGREGAR_EVENTO , $cParametroRegistro, 'I', VENTANA_SECUNDARIA );
			$this->addListAction ( IMPORTAR_CONTACTOS, $cParametroRegistro, 'I', VENTANA_SECUNDARIA );
		}
	function makeRowActions( $aRow )
		{
			$cParametroRegistro =  "ncEvento=" . $aRow["ncEvento"];
			if ( $aRow['bCancelado'] )
			{
				$this->addRowAction ( DESCANCELAR_EVENTO , $cParametroRegistro);
			}
			else{
				$this->addRowAction ( IMPORTAR_CONTACTOS, $cParametroRegistro, 'I', VENTANA_SECUNDARIA );
				$this->addRowAction ( DUPLICAR_EVENTO , $cParametroRegistro );
				$this->addRowAction ( MODIFICAR_EVENTO , $cParametroRegistro );
				$this->addRowAction ( ELIMINAR_EVENTO , $cParametroRegistro);
				$this->addRowAction ( CANCELAR_EVENTO , $cParametroRegistro);
				$this->addRowAction ( CONSULTAR_CONTACTOS_DE_UN_EVENTO , $cParametroRegistro);
			}
		}
	function makeComplex()
		{
			$oLst = $this->oModule->loadClass ( "evento_persona_lst" );
			$oLst->aFields['ncEvento'] = $this->aFields['ncEvento'];
			$oLst->makeDir();
		}
	}
?>
